package com.giscloud.amp.service.auth;

import com.giscloud.amp.entity.ApKeyRuleRelation;
import com.giscloud.amp.entity.ApRuleMatch;
import com.giscloud.datasource.page.PageInfo;

import java.util.List;
import java.util.Map;

public interface ApKeyRuleRelationService {

    /**
     * 新增（启用）匹配规则
     * @param record
     * @return
     */
    int insertSelective(ApKeyRuleRelation record);

    /**
     * 删除（禁用）匹配规则
     * @return
     */
    int deleteByPrimaryKey(ApKeyRuleRelation record);

    /**
     * 查询城市使用匹配规则列表
     * @param params
     * @return
     */
    PageInfo selectByExample(Map<String, Object> params);

    /**
     * 查询城市列表
     * @return
     */
    List<ApKeyRuleRelation> getCityList(Map<String, Object> params);

    /**
     * 修改匹配规则排序
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(ApKeyRuleRelation record);

    /**
     * 向上或向下调整排序
     * @param params
     * @return
     */
    int upOrDownOrder(Map<String, Object> params);

    /**
     * 查询日志列表
     * @param params
     * @return
     */
    PageInfo selectLogByExample(Map<String, Object> params);


    /**
     * 查询匹配规则列表
     * @param params
     * @return
     */
    PageInfo selectRuleList(Map<String, Object> params);

    /**
     * 批量启用匹配规则
     * @param params
     * @return
     */
    int batchEnableRule(Map<String, Object> params);

    /**
     * 批量禁用匹配规则
     * @param params
     * @return
     */
    int batchDisableRule(Map<String, Object> params);

    /**
     * 查询指定规则下的城市列表
     * @return
     */
    List<ApKeyRuleRelation> getCityListByRule(Map<String, Object> params);

    /**
     * 查询规则详情
     * @param apRuleMatch
     * @return
     */
    ApRuleMatch selectApRule(ApRuleMatch apRuleMatch);

    /**
     * 修改规则详情
     * @param apRuleMatch
     * @return
     */
    int updateApRule(ApRuleMatch apRuleMatch);


}
